package com.cskaoyan.javase.oop3._1interface._1basic.impl;

/**
 * @description: 接口的实现类
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import com.cskaoyan.javase.oop3._1interface._1basic.InterfaceA;
import com.cskaoyan.javase.oop3._1interface._1basic.InterfaceB;

/**
 * 在接口所在包写一个impl的包,然后写类名接口名+Impl表示接口实现类
 *
 * 接口的子类特点:
 *      1,普通类,必须实现所有的抽象方法
 *      2,抽象类.可以选择实现,也可以完全不实现抽象方法
 *      3,接口,接口是继承一个接口,并且继承后得到成员,无需实现抽象方法
 *
 * 总结:
 *      1,继承(extends)不能跨越种族,类和类继承,接口和接口继承
 *            类的继承受多继承限制,是单继承
 *            接口的继承不受多继承限制,可以继承多个接口
 *      2,实现(implements)必须是一个类实现接口
 *            普通类,必须实现所有的抽象方法
 *            抽象类.可以选择实现,也可以完全不实现抽象方法
 *      3,接口不能和类发生任何关系,它们之间不能继承,更不能实现
 *
 */
public class InterfaceAImpl implements InterfaceA, InterfaceB {
    @Override
    public void test() {
        System.out.println("接口A的实现test方法");
    }
}

abstract class A implements InterfaceA{

}

interface IA extends InterfaceA,InterfaceB{}
